icon theme: Add a warning
authorMatthias Clasen <mclasen@redhat.com>
Thu, 19 May 2016 13:03:20 +0000 (09:03 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 19 May 2016 13:03:20 +0000 (09:03 -0400)
Warn about the situation when we've found a resource or file path,
but gdk-pixbuf fails to give us a pixbuf. This generally means that
either pixbuf loaders are not found or the shared-mime database
is missing.

gtk/gtkicontheme.c

index 4cb489360021f748cffa8ec2328da73477f29bec..8ebf652d4f43e13d7d6cb4aec6570ffd2b9edf16 100644 (file)
@@ -3951,7 +3951,30 @@ icon_info_ensure_scale_and_pixbuf (GtkIconInfo *icon_info)
     }
 
   if (!source_pixbuf)
-    return FALSE;
+    {
+      static gboolean warn_about_load_failure = TRUE;
+
+      if (warn_about_load_failure)
+        {
+          gchar *path;
+
+          if (icon_info->is_resource)
+            path = g_strdup (icon_info->filename);
+          else if (G_IS_FILE (icon_info->loadable))
+            path = g_file_get_path (G_FILE (icon_info->loadable));
+          else
+            path = g_strdup ("icon theme");
+
+          g_warning ("Could not load a pixbuf from %s.\n"
+                     "This may indicate that pixbuf loaders or the mime database could not be found.",
+                     path);
+          g_free (path);
+
+          warn_about_load_failure = FALSE;
+        }
+
+      return FALSE;
+    }
 
   /* Do scale calculations that depend on the image size
    */